#ifndef MUSIC_H
#define MUSIC_H
#include <QUrl>

class Music
{
public:
    Music();
    Music(QUrl url);
    //设置歌曲id
    void setMusicId(const QString& musicId);
    //设置歌曲名称
    void setMusicName(const QString& musicName);
    //设置歌曲作者
    void setMusicSinger(const QString& musicSinger);
    //设置歌曲专辑
    void setMusicAlbumn(const QString& musicAlbumn);
    //设置歌曲时长
    void setMusicDuration(qint64 duration);
    //设置歌曲是否收藏
    void setIsLike(bool isLike);
    //设置歌曲是否为历史播放
    void setIsHistory(bool isHistory);
    //设置歌曲的URL
    void setMusicUrl(QUrl musicUrl);

    //获取歌曲名称
    QString getMusicName()const;
    //获取歌曲作者
    QString getMusicSinger()const;
    //获取歌曲专辑
    QString getMusicAlbumn()const;
    //获取歌曲时长
    qint64 getMusicDuration()const;
    //获取歌曲是否收藏
    bool getIsLike()const;
    //获取歌曲是否为历史播放
    bool getIsHistory()const;
    //获取歌曲的URL
    QUrl getMusicUrl()const;
    //获取UUID
    QString getMusicId()const;
    //获取此Music的Lrc歌词文件路径
    QString getLrcFilePath()const;
    //将Music歌曲属性写入到数据库中
    void InsertMusicToDB();

private:
    //解析元数据-根据QUrl来进行获取该音乐的信息
    void parseMediaMetaMusic();


private:
    //为了保证歌曲的唯一性，需要给音乐添加id属性,这里采用UUID方式
    QString musicId;
    //音乐名称
    QString musicName;
    //音乐作者
    QString musicSinger;
    //音乐专辑
    QString musicAlbumn;
    //音乐持续时长 qint64类似long long类型
    qint64 duration;
    //音乐是否收藏
    bool isLike;
    //是否为历史播放
    bool isHistory;
    //音乐的QUrl
    QUrl musicUrl;
};

#endif // MUSIC_H
